package net.sxjr.mbg.entity;

import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;

/**
 * <p>
 * 流程节点表
 * </p>
 *
 * @author cuixc
 * @since 2020-12-10
 */
public class BdpWfFlowNode extends Model<BdpWfFlowNode> {

    private static final long serialVersionUID=1L;

    /**
     * 节点标识
     */
    @TableId("NODE_ID")
    private String nodeId;

    /**
     * 审批流ID
     */
    @TableField("FLOW_ID")
    private String flowId;

    /**
     * 同一流程下的节点序号是唯一的
     */
    @TableField("NODE_ORDER")
    private Long nodeOrder;

    /**
     * 节点名称
     */
    @TableField("NODE_NAME")
    private String nodeName;

    /**
     * 是否允许该节点的审批人修改单据
     */
    @TableField("ALLOW_EDIT")
    private Integer allowEdit;

    /**
     * 如果该节点有多个审批人，确定他们是抢先审批还是会签审批.
            0:抢先;1:会签
     */
    @TableField("AUDIT_MODE")
    private Integer auditMode;

    /**
     * 是否允许在发起流程节点时选定审批人.如果不允许，但某一节点有多个审批人，则视为多人审批
            
     */
    @TableField("ALLOW_SELECT_AUDITOR")
    private Integer allowSelectAuditor;

    /**
     * 是否允许终止流程
     */
    @TableField("ALLOW_TERMINATE")
    private Integer allowTerminate;

    /**
     * 下一节点序号
     */
    @TableField("NEXT_NODE_ORDER")
    private Long nextNodeOrder;

    /**
     * 下一流程序号的计算公式，返回流程序号,数值型
     */
    @TableField("NEXT_NODE_EXP")
    private String nextNodeExp;

    /**
     * 该节点处理时是否通知相关经办人，包括流程发起者、已流转节点的审批人
            是否通知已流转节点的审批人？
     */
    @TableField("NOTIFY_ATTN")
    private Integer notifyAttn;

    /**
     * 0 主页消息
            1 邮件
            2 手机短信
            
     */
    @TableField("NOTIFY_MODE")
    private Integer notifyMode;

    /**
     * 公司
     */
    @TableField("INNER_COMPANY_ID")
    private String innerCompanyId;

    /**
     * 创建人
     */
    @TableField("INNER_CREATOR_ID")
    private String innerCreatorId;

    /**
     * 创建时间
     */
    @TableField("INNER_CREATE_TIME")
    private LocalDateTime innerCreateTime;

    /**
     * 删除标志
     */
    @TableField("INNER_DELETE_FLAG")
    private Integer innerDeleteFlag;

    /**
     * 表单地址
     */
    @TableField("AUDIT_URL")
    private String auditUrl;

    /**
     * 查看地址
     */
    @TableField("VIEW_URL")
    private String viewUrl;


    public String getNodeId() {
        return nodeId;
    }

    public BdpWfFlowNode setNodeId(String nodeId) {
        this.nodeId = nodeId;
        return this;
    }

    public String getFlowId() {
        return flowId;
    }

    public BdpWfFlowNode setFlowId(String flowId) {
        this.flowId = flowId;
        return this;
    }

    public Long getNodeOrder() {
        return nodeOrder;
    }

    public BdpWfFlowNode setNodeOrder(Long nodeOrder) {
        this.nodeOrder = nodeOrder;
        return this;
    }

    public String getNodeName() {
        return nodeName;
    }

    public BdpWfFlowNode setNodeName(String nodeName) {
        this.nodeName = nodeName;
        return this;
    }

    public Integer getAllowEdit() {
        return allowEdit;
    }

    public BdpWfFlowNode setAllowEdit(Integer allowEdit) {
        this.allowEdit = allowEdit;
        return this;
    }

    public Integer getAuditMode() {
        return auditMode;
    }

    public BdpWfFlowNode setAuditMode(Integer auditMode) {
        this.auditMode = auditMode;
        return this;
    }

    public Integer getAllowSelectAuditor() {
        return allowSelectAuditor;
    }

    public BdpWfFlowNode setAllowSelectAuditor(Integer allowSelectAuditor) {
        this.allowSelectAuditor = allowSelectAuditor;
        return this;
    }

    public Integer getAllowTerminate() {
        return allowTerminate;
    }

    public BdpWfFlowNode setAllowTerminate(Integer allowTerminate) {
        this.allowTerminate = allowTerminate;
        return this;
    }

    public Long getNextNodeOrder() {
        return nextNodeOrder;
    }

    public BdpWfFlowNode setNextNodeOrder(Long nextNodeOrder) {
        this.nextNodeOrder = nextNodeOrder;
        return this;
    }

    public String getNextNodeExp() {
        return nextNodeExp;
    }

    public BdpWfFlowNode setNextNodeExp(String nextNodeExp) {
        this.nextNodeExp = nextNodeExp;
        return this;
    }

    public Integer getNotifyAttn() {
        return notifyAttn;
    }

    public BdpWfFlowNode setNotifyAttn(Integer notifyAttn) {
        this.notifyAttn = notifyAttn;
        return this;
    }

    public Integer getNotifyMode() {
        return notifyMode;
    }

    public BdpWfFlowNode setNotifyMode(Integer notifyMode) {
        this.notifyMode = notifyMode;
        return this;
    }

    public String getInnerCompanyId() {
        return innerCompanyId;
    }

    public BdpWfFlowNode setInnerCompanyId(String innerCompanyId) {
        this.innerCompanyId = innerCompanyId;
        return this;
    }

    public String getInnerCreatorId() {
        return innerCreatorId;
    }

    public BdpWfFlowNode setInnerCreatorId(String innerCreatorId) {
        this.innerCreatorId = innerCreatorId;
        return this;
    }

    public LocalDateTime getInnerCreateTime() {
        return innerCreateTime;
    }

    public BdpWfFlowNode setInnerCreateTime(LocalDateTime innerCreateTime) {
        this.innerCreateTime = innerCreateTime;
        return this;
    }

    public Integer getInnerDeleteFlag() {
        return innerDeleteFlag;
    }

    public BdpWfFlowNode setInnerDeleteFlag(Integer innerDeleteFlag) {
        this.innerDeleteFlag = innerDeleteFlag;
        return this;
    }

    public String getAuditUrl() {
        return auditUrl;
    }

    public BdpWfFlowNode setAuditUrl(String auditUrl) {
        this.auditUrl = auditUrl;
        return this;
    }

    public String getViewUrl() {
        return viewUrl;
    }

    public BdpWfFlowNode setViewUrl(String viewUrl) {
        this.viewUrl = viewUrl;
        return this;
    }

    @Override
    protected Serializable pkVal() {
        return this.nodeId;
    }

    @Override
    public String toString() {
        return "BdpWfFlowNode{" +
        "nodeId=" + nodeId +
        ", flowId=" + flowId +
        ", nodeOrder=" + nodeOrder +
        ", nodeName=" + nodeName +
        ", allowEdit=" + allowEdit +
        ", auditMode=" + auditMode +
        ", allowSelectAuditor=" + allowSelectAuditor +
        ", allowTerminate=" + allowTerminate +
        ", nextNodeOrder=" + nextNodeOrder +
        ", nextNodeExp=" + nextNodeExp +
        ", notifyAttn=" + notifyAttn +
        ", notifyMode=" + notifyMode +
        ", innerCompanyId=" + innerCompanyId +
        ", innerCreatorId=" + innerCreatorId +
        ", innerCreateTime=" + innerCreateTime +
        ", innerDeleteFlag=" + innerDeleteFlag +
        ", auditUrl=" + auditUrl +
        ", viewUrl=" + viewUrl +
        "}";
    }
}
